package com.lvyq.myplayer.common.util

import android.animation.ObjectAnimator
import android.animation.ValueAnimator
import android.content.Context
import com.google.android.material.imageview.ShapeableImageView

/**
 * 文件描述：ImgAnimatorUtils 图片旋转工具
 * 作者：lvyq
 * 创建时间：2025-06-17
 * 修改时间：2025-06-17
 */
class ImgAnimatorUtils( var view: ShapeableImageView) {
    private var animator: ObjectAnimator? = null

    /**
     * 启动无限旋转动画
     * @param durationMillis 旋转周期（毫秒），默认60秒
     */
    fun startInfiniteRotation(durationMillis: Long = 60_000) {
        stopAnimation() // 先停止可能存在的旧动画

        animator = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f).apply {
            this.duration = durationMillis
            repeatCount = ValueAnimator.INFINITE
            interpolator = null // 禁用加速/减速
        }
        animator?.start()
    }

    /**
     * 暂停/恢复动画
     * @param isRotating true=恢复，false=暂停
     */
    fun toggleRotation(isRotating: Boolean) {
        animator?.let {
            if (isRotating) {
            /*    if (it.isPaused) it.resume()
                if (!it.isRunning) it.start()*/
                it.resume()
            } else {
                it.pause()
            }
        }
    }

    /**
     * 停止动画并释放资源
     */
    fun stopAnimation() {
        animator?.apply {
            cancel()
            removeAllUpdateListeners()
        }
        animator = null
    }

    /**
     * 设置旋转轴心（默认中心点）
     */
    fun setPivot(pivotX: Float = 0.5f, pivotY: Float = 0.5f) {
        view.pivotX = view.width * pivotX
        view.pivotY = view.height * pivotY
    }


}